import type { ComponentTokenMap } from './components'
import type { AliasToken } from './alias'

export type OverrideToken = {
  [key in keyof ComponentTokenMap]: Partial<ComponentTokenMap[key]> &
    Partial<AliasToken>
}

/** Final token which contains the components level override */
export type GlobalToken = AliasToken & ComponentTokenMap

export { PresetColors } from './presetColors'
export type {
  PresetColorType,
  ColorPalettes,
  PresetColorKey
} from './presetColors'
export type { SeedToken } from './seeds'
export type {
  MapToken,
  ColorMapToken,
  ColorNeutralMapToken,
  CommonMapToken,
  HeightMapToken,
  SizeMapToken,
  FontMapToken,
  StyleMapToken
} from './maps'
export type { AliasToken } from './alias'
export type { ComponentTokenMap } from './components'
